2021-05-27
CRA로 만들었을 때 Eslint와 Prettier 설정하기
npm i -D eslint eslint-config-prettier eslint-plugin-prettier eslint-plugin-react prettier
// .eslintrc.js
module.exports = {
env: {
browser: true,
es2021: true,
},
extends: ['eslint:recommended', 'plugin:react/recommended', 'plugin:prettier/recommended'],
parserOptions: {
ecmaFeatures: {
jsx: true,
},
ecmaVersion: 12,
sourceType: 'module',
},
plugins: ['react'],
ignorePatterns: ['.*.js'],
rules: {
'react/react-in-jsx-scope': 'off',
'prettier/prettier': [
'error',
{
usePrettierrc: true,
},
],
},
};
// .prettierrc.js
module.exports = {
"printWidth": 100, // 화면 폭
"tabWidth": 2, // 탭간격, 스페이스 설정시 2칸 띄어쓰기
"singleQuote": true, // ' 사용
"trailingComma": "all", // , 자동 붙이기
"bracketSpacing": true, // [1,2] -> [ 1, 2 ]
"semi": true, // ; 사용
"useTabs": false, // tab키 사용. false 추천 == space 대체
"arrowParens": "avoid", // (x) => x를 x => x로 변환
"endOfLine": "lf"
}
npm i -D husky@4 lint-staged
npm script에 "lint": "eslint --fix"
를 추가한다.
허스키 설정파일 .huskyrc.json
{
"hooks": {
"pre-commit": "lint-staged"
}
}
lint-staged 설정파일 .lintstagedrc.json
{
"src/**/*.{js,ts,jsx,tsx}": [
"npm run lint"
]
}
2021-05-05